package cn.b.sky.mes.andon.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.b.sky.mes.andon.model.AndonAttribute;
import cn.b.sky.mes.andon.model.AndonAttributeEnum;
import cn.b.sky.mes.andon.model.condition.AndonAttributeCondition;

/**
 * 
 * <strong>Title : AndonAttributeDao.java<br></strong>
 * <strong>Package : cn.b.sky.mes.andon.dao<br></strong>
 * <strong>Description : </strong>安灯属性数据接口<br> 
 * <strong>Create on : 2016年10月14日 上午10:35:39<br></strong>
 * <p>
 * @author zhaoxin01<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人|修改日期|修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface AndonAttributeDao {

  /**
   * 
   * <strong>Title : selectAndonAttributeByCondition<br></strong>
   * <strong>Description : </strong>分页查询安灯属性<br> 
   * <strong>Create on : 2016年10月14日 上午10:35:15<br></strong>
   * <p>
   * @param andonAttributeCondition
   * @return
   * List<AndonAttribute>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<AndonAttribute> selectAndonAttributeByCondition(AndonAttributeCondition andonAttributeCondition);

  /**
   * 
   * <strong>Title : selectAndonAttributeCount<br></strong>
   * <strong>Description : </strong>查询安灯属性条数<br> 
   * <strong>Create on : 2016年10月14日 上午10:58:25<br></strong>
   * <p>
   * @param andonAttributeCondition
   * @return
   * int
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectAndonAttributeCount(AndonAttributeCondition andonAttributeCondition);

  /**
   * 
   * <strong>Title : selectAndonAttribute<br></strong>
   * <strong>Description : </strong>查询安灯属性<br> 
   * <strong>Create on : 2016年10月14日 下午1:11:54<br></strong>
   * <p>
   * @param siteCode
   * @param attributeCode
   * @return
   * AndonAttribute
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  AndonAttribute selectAndonAttribute(@Param("siteCode") String siteCode, @Param("attributeCode") String attributeCode);

  /**
   * 
   * <strong>Title : insertAndonAttribute<br></strong>
   * <strong>Description : </strong>新增安灯属性<br> 
   * <strong>Create on : 2016年10月14日 下午1:14:56<br></strong>
   * <p>
   * @param andonAttribute
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertAndonAttribute(AndonAttribute andonAttribute);

  /**
   * 
   * <strong>Title : updateAndonAttribute<br></strong>
   * <strong>Description : </strong>更新安灯属性<br> 
   * <strong>Create on : 2016年10月14日 下午1:15:32<br></strong>
   * <p>
   * @param andonAttribute
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateAndonAttribute(AndonAttribute andonAttribute);

  /**
   * 
   * <strong>Title : deleteAndonAttribute<br></strong>
   * <strong>Description : </strong>删除安灯属性<br> 
   * <strong>Create on : 2016年10月14日 下午1:16:25<br></strong>
   * <p>
   * @param siteCode
   * @param attributeCode
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteAndonAttribute(@Param("siteCode") String siteCode, @Param("attributeCode") String attributeCode);

  /**
   * 
   * <strong>Title : selectAndonAttributeEnumByAttribute<br></strong>
   * <strong>Description : </strong>查询安灯属性枚举<br> 
   * <strong>Create on : 2016年10月14日 下午1:19:48<br></strong>
   * <p>
   * @param siteCode
   * @param attributeCode
   * @return
   * List<AndonAttributeEnum>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<AndonAttributeEnum> selectAndonAttributeEnumByAttribute(@Param("siteCode") String siteCode,
      @Param("attributeCode") String attributeCode);

  /**
   * 
   * <strong>Title : insertAndonAttributeEnum<br></strong>
   * <strong>Description : </strong>新增安灯属性<br> 
   * <strong>Create on : 2016年10月14日 下午1:20:45<br></strong>
   * <p>
   * @param andonAttributeEnum
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertAndonAttributeEnum(AndonAttributeEnum andonAttributeEnum);

  /**
   * 
   * <strong>Title : deleteAndonAttributeEnum<br></strong>
   * <strong>Description : </strong><br> 
   * <strong>Create on : 2016年10月14日 下午1:51:48<br></strong>
   * <p>
   * @param siteCode
   * @param attributeCode
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteAndonAttributeEnum(@Param("siteCode") String siteCode, @Param("attributeCode") String attributeCode);

  /**
   * 
   * <strong>Title : selectAndonAttributeListByAndonType<br></strong>
   * <strong>Description : </strong>根据ANDON类型获取ANDON自定义属性集合信息<br> 
   * <strong>Create on : 2016年10月17日 上午9:10:16<br></strong>
   * <p>
   * @param siteCode 工厂编码
   * @param andonType ANDON类型
   * @return
   * List<AndonAttribute> ANDON自定义属性集合信息
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<AndonAttribute> selectAndonAttributeListByAndonType(@Param("siteCode") String siteCode,
      @Param("andonType") String andonType);
  
  /**
   * 
   * <strong>Title : selectAndonAttributeEnumListByAndonType<br></strong>
   * <strong>Description : </strong>根据ANDON类型查询对应自定义属性集合下的所有枚举信息集合<br> 
   * <strong>Create on : 2016年10月17日 上午9:17:46<br></strong>
   * <p>
   * @param siteCode 工厂编码
   * @param andonType ANDON类型
   * @return
   * List<AndonAttributeEnum> 自定义属性集合下的所有枚举信息集合
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<AndonAttributeEnum> selectAndonAttributeEnumListByAndonType(@Param("siteCode") String siteCode,
      @Param("andonType") String andonType);
}
